home *** CD-ROM | disk | FTP | other *** search
/ Delphi 2 - Developers' Solutions / Delphi 2 Developers' Solutions.iso / dds / chap07 / howto02 / clients / clients.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1996-04-11  |  1.8 KB  |  69 lines

  1. unit Clients;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, DBTables, DB, Grids, DBGrids;
  8.  
  9. type
  10.   TClientForm = class(TForm)
  11.     ClientDataSource: TDataSource;
  12.     ClientTable: TTable;
  13.     PersonTable: TTable;
  14.     CompanyTable: TTable;
  15.     ClientDBGrid: TDBGrid;
  16.     ClientTableCLIENT_ID: TIntegerField;
  17.     ClientTableCLIENT_TYPE: TSmallintField;
  18.     ClientTableFIRST_CONTACT: TDateField;
  19.     ClientTableLAST_CONTACT: TDateField;
  20.     ClientTablePHONE_NUMBER: TStringField;
  21.     ClientTableCLIENT_NAME: TStringField;
  22.     PersonTableFIRST_NAME: TStringField;
  23.     PersonTableLAST_NAME: TStringField;
  24.     PersonTableCLIENT_ID: TIntegerField;
  25.     CompanyTableCLIENT_ID: TIntegerField;
  26.     CompanyTableCOMPANY_NAME: TStringField;
  27.     procedure ClientTableCalcFields(DataSet: TDataset);
  28.   private
  29.     { Private declarations }
  30.   public
  31.     { Public declarations }
  32.   end;
  33.  
  34. var
  35.   ClientForm: TClientForm;
  36.  
  37. implementation
  38.  
  39. {$R *.DFM}
  40.  
  41. procedure TClientForm.ClientTableCalcFields(DataSet: TDataset);
  42. var
  43.   ClientName: String;
  44. begin
  45.   ClientName := '';
  46.   case ClientTableCLIENT_TYPE.AsInteger of
  47.   1: { This client is an individual }
  48.     begin
  49.       if PersonTable.FindKey([ClientTableCLIENT_ID.AsInteger]) then
  50.       begin
  51.         if not PersonTableFIRST_NAME.isNull then
  52.           ClientName := ClientName
  53.             + PersonTableFIRST_NAME.AsString
  54.             + ' ';
  55.         ClientName := ClientName + PersonTableLAST_NAME.AsString;
  56.       end;
  57.     end;
  58.   2: { This client is a company }
  59.     begin
  60.       if CompanyTable.FindKey([ClientTableCLIENT_ID.AsInteger]) then
  61.         ClientName := CompanyTableCOMPANY_NAME.AsString;
  62.     end;
  63.  
  64.   end;
  65.   ClientTableCLIENT_NAME.Value := ClientName;
  66. end;
  67.  
  68. end.
  69.